home *** CD-ROM | disk | FTP | other *** search
- PROGRAM JoyStick;
-
- USES
- Crt;
-
- VAR
- Ox,Oy,Ok1,Ok2:INTEGER;
-
- PROCEDURE Stick(VAR X,Y,K1,K2:INTEGER);
- BEGIN INLINE
- ($BA/$01/$02/ { MOV DX,0201H } {1=pressed 0=not pressed}
- $EC/ { IN AL,DX }
- $A8/$03/ { TEST AL,03H } { 0CH For joystiCk #2 }
- $75/$FB/ { JNZ $-3 }
- $B9/$2C/$01/ { MOV CX,300 }
- $FA/ { CLI }
- $EE/ { OUT DX,AL }
- $EC/ { IN AL,DX }
- $A8/$01/ { TEST AL,01H } { 04H For joystiCk #2 }
- $E0/$FB/ { LOOPNZ $-3 }
- $BB/$2C/$01/ { MOV BX,300 }
- $2B/$D9/ { SUB BX,CX }
- $C4/$BE/x/ { LES DI,SS:x[BP] }
- $26/$89/$1D/ { MOV ES:[DI],BX }
- $2B/$DB/ { SUB BX,BX }
- $A8/$10/ { TEST AL,10H } { 40H For joystiCk #2 }
- $75/$03/ { JNZ $+5 }
- $83/$C3/$01/ { ADD BX,1 }
- $C4/$BE/k1/ { LES DI,SS:k1[BP] }
- $26/$89/$1D/ { MOV ES:[DI],BX }
- $2B/$DB/ { SUB BX,BX }
- $A8/$20/ { TEST AL,20H } { 80H For joystiCk #2 }
- $75/$03/ { JNZ $+5 }
- $83/$C3/$01/ { ADD BX,1 }
- $C4/$BE/k2/ { LES DI,SS:k2[BP] }
- $26/$89/$1D/ { MOV ES:[DI],BX }
- $EC/ { IN AL,DX }
- $A8/$03/ { TEST AL,03H } { 0CH For joystiCk #2 }
- $75/$FB/ { JNZ $-3 }
- $B9/$2C/$01/ { MOV CX,300 }
- $EE/ { OUT DX,AL }
- $EC/ { IN AL,DX }
- $A8/$02/ { TEST AL,02H } { 08H For joystiCk #2 }
- $E0/$FB/ { LOOPNZ $-3 }
- $FB/ { STI }
- $BB/$2C/$01/ { MOV BX,300 }
- $2B/$D9/ { SUB BX,CX }
- $C4/$BE/y/ { LES DI,SS:y[BP] }
- $26/$89/$1D); { MOV ES:[DI],BX }
- END;
-
- BEGIN
- TextColor(WhitE); TextBackGround(Blue); ClrScr;
- REPEAT
- Stick(Ox,Oy,Ok1,Ok2);
- GotoXY(1,1); WRITE(Ox,'--',Oy,'->',Ok1,'--',Ok2);
- UNTIL KeyPressed;
- END.